package com.vtron.dbase.service;

import com.vtron.dbase.models.DbRelationship;
import com.vtron.dbase.models.PageResult;

import java.util.List;
import java.util.Map;

/**
 * @基础对象服务接口
 * @date : 2021/12/28 16:02
 * @author: 忻龙彪
 */
public interface IBaseService<T> {
    /**
     * 保存
     * @param t
     * @throws Exception
     */
    void save(T t) throws  Exception;
    /**
     * 更新
     * @param t
     * @throws Exception
     */
    void update(T t) throws  Exception;
    /**
     * 删除
     * @param id
     * @throws Exception
     */
    void delete(String id)throws  Exception;

    /**
     * 根据主键获取数据
     * @param id
     * @return
     * @throws Exception
     */
    T get(String id) throws  Exception;

    /**
     * 根据单条件获取数据列表
     * @param qParameter
     * @return List<T>
     * @throws Exception
     */
    List<T> list(DbRelationship qParameter) throws  Exception;
    /**
     * 根据多条件获取数据列表
     * @param qParameter
     * @return List<T>
     * @throws Exception
     */
    List<T> list(List<DbRelationship> qParameter) throws  Exception;

    /**
     * 根据单条件获取数据分页
     * @param qParameters
     * @param pageNum
     * @param pageSize
     * @return PageResult
     * @throws Exception
     */
    PageResult pages(DbRelationship qParameters, Integer pageNum, Integer pageSize) throws  Exception;

    /**
     * 根据多条件获取数据分页
     * @param qParameters
     * @param pageNum
     * @param pageSize
     * @return PageResult
     * @throws Exception
     */
    PageResult pages(List<DbRelationship> qParameters, Integer pageNum, Integer pageSize) throws  Exception;

}
